Grundkurs SQL

2.5  Die äußeren JOINs

Eine kleine Einleitung

Das Schlüsselwort INNER weist darauf hin, dass nur Zeilen ausgewählt werden, bei denen ein gemeinsamer Schlüsselwert in beiden zu verknüpfenden Tabellen vorkommt. Das bedeutet für unser Beispiel, dass weder Mitarbeiter ohne Abteilung, noch Abteilungen, für die keine Mitarbeiter existieren, mit in die Ergebnisse aufgenommen werden.

Das scheint im ersten Moment vernünftig. Wenn man jedoch darüber nachdenkt, so werden bestimmte Abfragen durch diese Einschränkung unmöglich.
Man will vielleicht eine Liste von Mitarbeitern mit den dazugehörenden Abteilungen aufstellen und man möchte natürlich auch die Mitarbeiter sehen, für die – warum auch immer – keine entsprechende Abteilung zugeteilt wurde. Beispielsweise könnte man dann entscheiden, eine neue Abteilung einzurichten.

Um auch Datensätze aufzunehmen, zu denen in der anderen Tabelle kein Gegenstück existiert, benötigen wir weitere JOINs.

Hat etwa ein Objekt der ersten Tabelle kein Gegenstück in der zweiten, wird es beim INNER JOIN unter den Tisch fallen. Es werden ja nur diejenigen Zeilen verknüpft, deren Schlüsselnummern in beiden Tabellen vorkommen. Sollen aber auch diejenigen Zeilen aufgenommen werden, die nur in einer der beiden Tabellen vorkommen, so sprechen wir vom äußeren JOIN (OUTER JOIN).

Die nächsten zwei Abschnitte werden sich mit den äußeren Joins beschäftigen. Die Beispiele dazu sollten sie zum besseren Verständnis wieder in phpMyAdmin ausprobieren.

Bemerkung:
Achtung, äußere Verbünde sind nicht kommutativ, gerade die Position der Tabellen links oder rechts vom Schlüsselwort JOIN ist entscheidend!